package xcmg.device.dao.entity.delivery;

import lombok.Data;
import xcmg.device.infra.enums.DeliveryReceiptEnum;

import java.math.BigDecimal;
import java.util.Date;

@Data
public class DeliveryReceiptDO {
    private String id;

    private String billNo;

    private String orgId;

    private String orgName;

    private String dealerOrgId;

    private String dealerOrgName;

    private String shippingMethod;

    private String settlementId;

    private String settlementDesc;

    private String receiverName;

    private String receiverTel;

    private String receiverFax;

    private String receiverAddress;

    private Date deliveryDate;

    private Date arrivalDate;

    private String carrierOrgId;

    private String carrierOrgName;

    private String carrierUserName;

    private String carrierTel;

    private String carrierCar;

    private BigDecimal carrierAmount;

    private BigDecimal productAmount;

    private String auditStatus;

    private String auditDesc;

    private String auditId;

    private String auditName;

    private Date auditDate;

    private String auditMessage;

    private String deliveryStatus;

    private String deliveryDesc;

    private Boolean isDel;

    private String remark;

    private String createId;

    private String createName;

    private Date createDate;

    private String createOrgId;

    private String createOrgName;

    private String updateId;

    private Date updateDate;

    private Integer commitType;

    private String commitId;

    private Date commitTime;

    private String salesType;

    private String salesTypeDesc;

    private String freightNo;

    private String receiverSite;

    private String billType;

    private String receiveMessage;

    private Date receiveDate;

    /**
     * 添加字段  add by huhuawei
     * 2018-9-19
     * 物流基础信息表ID
     */
    private String basicId;
    /**
     * 添加字段  add by huhuawei
     * 2018-9-19
     * 承诺时间
     */
    private BigDecimal commitmentTime;

    private Integer isTimeOut;

    /**
     * 是否异常：0否 1是
     */
    private Integer isAbnormal;

    /**
     * 出库状态 0未出库1部分出库2已出库
     */
    private Integer outStatus;

    /**
     * 新建其他入库状态 0未开始1部分完成2已完成
     */
    private Integer sendStatus;

    /**
     * 调度员
     */
    private String dispatcherName;

    /**
     * 收货地址编码
     */
    private String addressCode;

    /**
     * 发运方式编码
     */
    private String shippingMethodId;

    /**
     * 发运方式二级名称
     */
    private String shippingSecondMethod;

    /**
     * 发运方式二级编码
     */
    private String shippingSecondMethodId;

    /**
     * 附件名称
     */
    private String attachName;

    /**
     * 发出仓库
     */
    private String outLocation;

    //是否是三日计划0：否，1：是
    private Integer threeDayPlan;
    //计划日期
    private Date planDate;
    //物流公司编号
    private String expressCode;

    /**
     * 实际到货时间
     */
    private Date realArrivalDate;

    /**
     * 是否到货。0否1是
     */
    private Integer arrivalFlag;

    private String purchaseContractNo;

    private Date deliveryTime;

    private String country;

    public boolean isShiped() {
        return !DeliveryReceiptEnum.DeliveryStatus.UnDelivery.toString().equals(this.deliveryStatus);
    }

    /**
     * 服务信息单号
     */
    private String serviceNo;

    private BigDecimal totalWeight;

    private BigDecimal freight;

    //进出口打印--验箱人
    private String checkerName;

    private String machineModel;

    /**
     * 辅料费用
     */
    private BigDecimal accessoriesFee;

    /**
     * 组织机构名称
     */
    private String deptName;

    /**
     * 销售订单创建人
     */
    private String salesName;

    /**
     * 销售订单创建人id
     */
    private String salesId;

    //进出口运单号
    private String jckBillNo;

    //同步ns系统状态 0 未同步 1 已同步 2 部分同步
    private Integer syncNsStatus;
}
